package com.bite.xml_basic_read;

import com.bite.entity.Contact;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.SAXReader;

import java.util.ArrayList;
import java.util.List;

/**
 * dom解析 :面向对象
 * SAX解析:基于事件处理的方式
 * 需求:将xml文件contact信息封装成对象
 */
public class Demo5 {

    public static void main(String[] args) throws  Exception {

        //目的:xml信息---->List
        //1  读取xml文件
        //2 创建一个list集合 (ArrayList/LinkedList/Vector) ,泛型指定:Contact类型
        //3 读取xml文件:根标签.elements() ;List<Element>
        //4 遍历当前List<Element>--->获取每一个节点对象:
        // 封装Contact对象 setxxx  Contact con = new Conatct()
        // con.setId() ;
        Document doc = new SAXReader().read(Demo5.class.getClassLoader().getResource("contact.xml"));

        //创建一个集合对象,List<Contact>
        List<Contact> conList = new ArrayList<Contact>() ;

        //读取xml文件:根标签.elements() ;List<Element>
        List<Element> list = doc.getRootElement().elements();
        for (Element e: list){
            //获取到每一个节点对象
            //创建Contact联系人对象并且封装
            Contact con = new Contact() ;
            con.setId(e.attributeValue("id"));
            con.setName(e.elementText("name"));
            con.setGender(e.elementText("gender"));
            con.setPhone(e.elementText("phone"));
            con.setEmail(e.elementText("email"));
            con.setAddress(e.elementText("address"));


            //保存List<Contact>集合中
            conList.add(con) ;
        }
        //遍历List<Contact>集合
        for(Contact contact:conList){
            System.out.println(contact);
        }
    }
}


